/**
 * 类名：MessageService
 * 创建日期： 2014-11-16 下午5:32:09
 * 
 */
package com.erms.domain;

import java.io.File;

import org.apache.log4j.Logger;

import com.erms.bean.FileInfo;
import com.erms.bean.Message;
import com.erms.bean.Teach;
import com.erms.bean.User;
import com.erms.dao.MessageDAO;
import com.erms.util.LogUtil;
import com.erms.util.TimeUtil;

/**
 * @author hmb 备注：
 * 
 */
public class MessageService extends BaseService {
	private MessageDAO messageDAO;
	private Message message;

	public Message getMessage() {
		return message;
	}

	public void setMessage(Message message) {
		this.message = message;
	}

	public MessageDAO getMessageDAO() {

		return messageDAO;
	}

	public void setMessageDAO(MessageDAO messageDAO) {

		this.messageDAO = messageDAO;
	}

	/**
	 * 保存通知信息,带附件
	 * 
	 * @param title
	 *            通知标题
	 * @param content
	 *            通知内容
	 * @param teachID
	 *            所属开课信息ID
	 * @param file
	 *            文件
	 * @param fileName
	 *            文件名
	 * @param contentType
	 *            文件类型
	 * @param newFileName
	 *            新文件名
	 * @param description
	 *            文件描述
	 * @param userID
	 *            上传者id
	 * @return 操作结果
	 */
	public boolean save(String title, String content, String teachID,
			File file, String fileName, String contentType, String newFileName,
			String description, String userID) {

		boolean result = true;
		if (file != null) {

			result = fileService.save(file, fileName, contentType, newFileName,
					description, FileService.TYPE_MESSAGE_ATTACH_FILE, userID);
		}
		try {

			if (result) {
				fileInfo = fileService.getFileInfo();
				message = new Message();
				Teach teach = new Teach();
				teach.setId(teachID);
				message.setTeach(teach);
				message.setTitle(title);
				message.setContent(content);
				message.setTime(TimeUtil.getTimeStamp());
				message.setFileInfo(fileInfo);
				messageDAO.save(message);
			}

		} catch (Exception e) {
			// TODO: handle exception
			logger.debug("保存通知成功", e);
			result = false;
		}
		return result;
	}

	/**
	 * 保存通知信息，不带附件
	 * 
	 * @param title
	 *            通知标题
	 * @param content
	 *            通知内容
	 * @param teachID
	 *            所属开课信息ID
	 * @return 操作结果
	 */
	public boolean save(String title, String content, String teachID) {

		return save(title, content, teachID, null, null, null, null, null, null);
	}

	/**
	 * 删除通知
	 * 
	 * @param id
	 *            通知ID
	 * @return
	 */
	public boolean delete(Integer id) {

		logger.debug("删除通知：id=" + id);
		boolean result = true;
		try {
			Message message = messageDAO.findById(id);
			if (message == null) {
				logger.debug("没有找到对应的通知:" + id);
				return false;
			}
			fileInfo = message.getFileInfo();
			messageDAO.delete(message);
			if (fileInfo == null) {
				logger.debug("没有附件");

			} else {
				fileService.delete(fileInfo.getId());
			}
		} catch (Exception e) {
			// TODO: handle exception
			logger.debug("删除通知成功");
			result = false;
		}
		return result;

	}

	public Message find(Integer id) {

		return messageDAO.findById(id);
	}
}
